This invention relates to template matching within a data domain, and more particularly to a method for locating a given data template within a data domain.
Template matching in the context of an image search is a process of locating the position of a subimage within an image of the same, or more typically, a larger size. The subimage is referred to as the template and the larger image is referred to as the search area. The template matching process involves shifting the template over the search area and computing a similarity between the template and the window of the search area over which the template lies. Another step involves determining a single or a set of matched positions in which there is a good similarity measure between the template and the search area window.
A common technique for measuring similarity in template matching and image registration is cross-correlation. A correlation measure is determined between the template and respective windows of the search area to find the template position which has maximum correlation. For a two-dimensional search area the correlation function generally is computed for all translations of the template within the search area. A statistical correlation measure is a common approach in which window areas are spatially convolved with the template using spatial filter functions. Because this approach is extremely expensive in terms of computation time, a more common computer implementation is to use a sum of absolute differences.
Rosenfeld et al., in "Coarse-Fine Template Matching," IEEE Transactions on Systems, Man and Cybernetics (February 1977, pp. 104-107)describe an approach where a `reduced-resolution` template is used during a first, coarse evaluation stage. The template is divided into blocks of equal size (e.g., `m` pixels per block). The average of each block is computed. For each pixel of the search area an average also is calculated over a neighborhood of the same size as the reduced-resolution template (e.g., m pixels). The average absolute difference between each template block average and the picture neighborhood average then is computed for each pixel of the search area. If the average absolute difference for any pixel of the search area is below a threshold value, then a possible match has been identified. Next, the full resolution template is compared to a window of the search area about each pixel point where the average absolute difference in the prior coarse evaluation step was below the threshold value. This fine evaluation step identifies if there actually is a good correlation.
Goshtasby et al. in "A Two-Stage Correlation Approach to Template Matching," IEEE Transaction on Pattern Analysis and Machine Intelligence, (Vol. PAMI-6, No. 3, May 1984), note the need for an accurate threshold value for the first stage evaluation. They describe a method for deriving the threshold value based upon sub-template size and false dismissal probability.
The coarse-fine or two stage method subsample the template to match with the image. The task of subsampling the template is not a trivial task and contributes significant processing cost. In addition, the false alarms result in wasted, or an ineffective use of, processing time. Accordingly, there is a need for a more efficient method of template matching.
In the area of motion estimation for digital video and multimedia communications a three stage correlation strategy is used. In a first step, a search step size of 4 is used. Once a maximum point is found, the step size is reduced to 2 to evaluate the neighborhood of the previously determined point to choose the next search point. The third step is to search all neighboring points to find the best match. This approach speeds up the search process, but also has a high probability of mismatches or suboptimal matches. It also has difficulty handling cases in which multiple match points occur. Thus, there is a need for a more reliable, fast search method for correlating a template to windows of a search area.